package leetcode;

import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;

/**
 * @param
 * @author oyz
 * @version 1.0
 * @description: 给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ，返回 true ；如果数组中每个元素互不相同，返回 false
 * @date 2022/2/28 21:38
 */
public class Code217 {

    /**
     * @description: hashTable解法
     * @author oyz
     * @param 
     * @date 2022/2/28 21:55
     * @version 1.0
     */
    public boolean containsDuplicate(int[] nums) {
        Map<Integer,Integer> hashTable = new HashMap<>();
        for (int i=0;i<nums.length;i++){
            if(hashTable.containsKey(nums[i])){
                return true;
            }
            hashTable.put(nums[i],i);
        }
        return false;
    }
    
    /**
     * @description: 利用set自动去重的解法
     * @author oyz
     * @param 
     * @date 2022/2/28 21:55
     * @version 1.0
     */
    public boolean containsDuplicate2(int[] nums) {
        Set<Integer> set = new HashSet<>();
        for (int object:nums){
            set.add(object);
        }
        return set.size()<nums.length?true:false;
    }
}
